Virtual desktop manager system and method

ABSTRACT

The present invention comprises a method and computer implemented system for presenting multiple virtual desktops on a display of a computer system. A “pager” window is displayed on a desktop (either real or virtual) which comprises multiple subpanes, each of which contains a scaled virtual desktop having dimensions that are proportional to, but less than the dimensions of a corresponding virtual desktop. Each scaled virtual desktop provides a representation of the corresponding full-size virtual desktop that would display one or more application windows whose content may optionally be replaced by the icon designating the application program or data file displayed therein, for sake of visual clarity. The present invention also provides a mechanism for varying the background image of virtual desktop, and thus, of each scaled virtual desktop pane, in addition to a number of enhancements to the user interface for controlling the virtual desktop environment including transparency hiding of the pager window, constant aspect ratio scaling of the pager window, mouse desktop changing with corner exclusion, display and interaction with window lists, individual pop up menus for windows, starting desktop selection, a method for moving windows between virtual desktops, a method to override virtual desktop behaviors, a method for placing child windows on the same desktop as the parent window, notification of desktop changes, tracking topmost application on other desktops, sticky monitors, and API remote control.

RELATED APPLICATIONS

The present application claims priority of U.S. Provisional ApplicationSerial. No. 60/523,615, filed Nov. 20, 2004, entitled “Virtual DesktopManager System and Method”.

TECHNICAL FIELD OF THE INVENTION

This invention relates generally to the field of graphical userinterfaces, and more particularly, to virtual desktop areas of agraphical user interface.

BACKGROUND OF THE INVENTION

Windowing operating environments share certain metaphorical conventions.Chief among these is the “desktop” metaphor, wherein the computer screenis likened to a physical desktop, and objects (icons) that representfiles, folders (collections of files), and devices (printers, storagemedia, etc.) are visually arranged on this “desktop” to permit a user toaccess them conveniently. However, this electronic desktop may become amess, as it becomes crowded with many icons arranged in ways that makeit difficult to locate those relevant to a particular task orapplication program. Added to this confusion is the fact that programwindows also appear over the desktop space, obscuring both icons andother windows.

In older, less powerful computers with limited ability to efficientlyrun multiple application programs simultaneously, the level of confusionwas generally limited by the capability of the hardware to remain usefulunder heavy load. With more modern systems having large hard disks,random access memory, and fast network connections, confusion has becomethe norm for most desktop users.

Early attempts to provide clarity in multitasking operating environmentsused concepts of multiple virtual screens, each dedicated to a singleapplication program. Apple Computer, Inc. (Cupertino, Cailf., US)provided such an environment in its “MultiFinder” program in 1987. Othersoftware approaches have provided ways of changing focus within thedesktop environment by making invisible those windows and objects notassociated with the foreground task. Still others have enlarged thedesktop by treating the computer monitor as a viewport into a largergraphical desktop, and allowing scrolling to present the contents of thedesktop within the monitor's dimensions.

A Virtual Desktop Manager is a program that provides the user withmultiple desktops by “virtualizing” the normal desktop, and as a resulteach of those virtual desktops may be better organized and moreproductive than the original (single) one. Under certain conditions, avirtual desktop manager may be more effective than having multiplemonitors, which require substantial investments in hardware, and may notbe supported by the underlying operating system.

Certain operating systems incorporate one or more Virtual DesktopManagers (such as BeOS) In other instances, a windowing subsystem mayprovide such capabilities (such as those in Linux, FreeBSD, and OpenBSD,where windows managers under X Windows have been used.)

In systems running Microsoft Windows, there are many Virtual DesktopManager programs available as additions to the operating system. Amongthese programs are Microsoft Virtual Desktop Manager for Windows XP(Microsoft Corp., Belleview, Wash., US), DeskSelect (GBS Design, Inc.London, ON, CA), Virtual Desktop Manager (Shelltoys, London, UK),MultiDesk (Digital River, Inc.) and many more too numerous to mention.Each of these has, in addition to the basic ability to manage more thanone virtual desktop, various additional functions intended by theirdevelopers to aid in management of the virtual desktop environment.

The Apple Macintosh OS X environment inherently supports multiple realdesktops, depending on the number of monitors connected to thecomputer's video interfaces. In addition, Apple provides the X11windowing environment, and thus, for application programs that use X11,a variety of Virtual Desktop Manager programs are available. Heretofore,Mac OS X Virtual Desktop Managers of the prior art have been adaptationsof those found on other Unix-derived systems. Because of the complexinteractions between the underlying Unix-derived core of Mac OS X andits graphical user interface, such software “ports” typically lackimportant functions, or fail to function in all instances with allsoftware.

An example of a desktop 100 is shown in FIG. 1, where one or moreapplication windows 102, and object icons 104 are displayed on thedesktop 100. Each application window is associated with a softwareprogram (application) designed to assist in the performance of aspecific task, such as word processing, web browsing, accounting, orelectronic mail. The desktop 100 includes a dock 108 comprising aplurality of icons, for causing one or more applications having windows102 to be launched in response to a user action, and a menu bar 106which contains titles of drop-down menus associated with applications,system management functions, and the like.

When a sufficient number of application windows 102 have been createdand shown on the desktop 100, the desktop 100 may become confusinglycluttered. As a result, a plurality of virtual desktops are provided bythe present invention to expand the size of the desktop 100. Eachvirtual desktop may have the same size as the desktop 100.

Using virtual desktops allows the group of application windows 102 to bedispersed and organized throughout the virtual desktops, therebyreducing the cluttered appearance. Each virtual desktop may be accessedin a variety of ways, as detailed in the User Guide which is included inthe CD-ROM Appendix (contents ©2003 Code Tek Studios, Inc. All RightsReserved), and is incorporated herein by reference. Among the accessmethods are: clicking in a menu in the menu bar 106 (here labeled “[WebBrowsing]” which is a user-definable name given to each virtualdesktop), clicking in a sub-pane of pager window 110, moving to a screenedge, by typing “hot keys”, and the like.

SUMMARY OF THE INVENTION

In accordance with the present invention, a method and computerimplemented system for presenting multiple virtual desktops on a displayof a computer system for previewing by a user are provided. A “pager”window 10 is displayed on the screen. Pager window 110 comprisesmultiple subpanes, each of which contains a scaled virtual desktophaving dimensions that are proportional but less than the dimensions ofa corresponding virtual desktop. Each scaled virtual desktop provides arepresentation of the corresponding full-size virtual desktop that woulddisplay, albeit at a smaller scale. For example, if the correspondingfull-size virtual desktop has one or more application windows that areshown on the full-size virtual desktop, the scaled virtual desktop woulddisplay one or more scaled application windows that correspond to theone or more application windows shown by the corresponding full-sizevirtual desktop. The contents of the application windows may optionallybe replaced by the icon designating the application program or data filedisplayed therein, for sake of visual clarity.

The present invention may also provide a mechanism for varying thebackground image of a virtual desktop. The use of differing backgroundsallows a user to visually identify the different virtual desktops aswell as the application windows that are running on those virtualdesktops. It also provides a number of enhancements to the userinterface for controlling the virtual desktop environment includingtransparency hiding of the pager window, constant aspect ratio scalingof the pager window, mouse desktop changing with corner exclusion,display and interaction with window lists, individual pop up menus forwindows, starting desktop selection, a method for moving windows betweenvirtual desktops, a method to override virtual desktop behaviors, amethod for placing child windows on the same desktop as the parentwindow, notification of desktop changes, tracking topmost application onother desktops, sticky monitors, and API remote control.

BRIEF DESCRIPTION OF THE DRAWING

The foregoing aspects and many of the attendant advantages of thisinvention will become more readily appreciated as the same become betterunderstood by reference to the following detailed description, whentaken in conjunction with the accompanying drawings, wherein:

FIG. 1 is a screen shot illustrating a desktop of a graphical userinterface according to the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The invention is disclosed in full in the source code appendix CD-ROM,which is incorporated herein by this reference. A directory thereonentitled “CTVDCode” contains source code and related resources necessaryto compile the present invention under Apple Macintosh OS X Version10.2.8 (Apple Computer, Inc., Cupertino, Calif., US). Reference is madeto the Source code for a complete disclosure of the invention.

Transparency Hiding of Pager Window

Pager windows 110 often take up a significant amount of screen “realestate” (area.) In order to allow the user to have the ability to usethe pager without having it persistent on the screen, the presentinvention implements a new strategy for handling the pager window 110.Whenever the pager window 110 is not in use, it automatically becomestransparent to a user-defined degree. Transparency may occurimmediately, or slowly happen over time, as determined by the user. Apager window 110 is considered active whenever the user's mouse cursorhovers over the area of the screen occupied by pager window 110 for apredetermined and user-controllable time period. Once the mouse remainsin this area for the time period, the pager will lose its transparencyand appear again. This appearance may take place over time as a gradualincrease in transparency, or immediately, again, under user control.

Aspect Ratio Scaling of Pager

Different users have unique requirements for the absolute or relativesize of a pager window 110. In order to meet this requirement, thepresent invention allows a user to scale the size of the pager window110, while maintaining a constant aspect ratio of the pager.

Mouse Desktop Changing

While many virtual desktop implementations of the prior art provide amethod to change from one virtual desktop to another by moving the mouseto the edge of the screen, the present invention uniquely prevents theuser from inadvertently changing desktops when the mouse is in one ormore the corners of the screen. This method determines when the mousepointer is near the corner of a screen and determines whether to cause avirtual desktop change to take place. The method may disallow desktopchanges in any of the corners, or may only disallow them in corners thatare being used for other application activations such as a screen saveror Expose hotspot. This method also allows desktops to be changed byplacing the mouse near the edge of the screen as is done in severalvirtual desktop implementations of the prior art, but preventsinadvertent activation or initiation of multiple system functions with asingle mouse action (e.g., desktop change and simultaneous screensaveractivation.)

Display and Interaction with Window List

The system of the present invention provides a novel method for viewingthe windows display ed in each virtual desktop and for interacting withthem. The present invention implements a menu in menu bar 106 thatcontains a list of virtual desktops that is available to be switched to.The user may select one of these desktops and switch to it. In addition,each item in the desktop menu is provided with a submenu that contains alist of windows on each virtual desktop. The user may then select one ofthese windows and will then switch to the virtual desktop of thatwindow, and automatically activate it.

Individual Pop Up Menus for Windows

The present invention provides a novel method for managing a window andits virtual desktop settings by allowing the user to press aconfigurable hot key when the mouse is hovering over a window. A virtualdesktop management window that is tailored to the window the mouse ishovering over will be presented, and will allow the user to change thatwindow's settings.

The present invention also provides a novel method in the pop up menuthat allows the user to move an individual window to any chosen virtualdesktop via the pop up menu, or to move all of the application's windowsto any chosen virtual desktop. The destination virtual desktop isselected within this menu.

Starting Desktop Selection

The present invention provides a mechanism for setting the startingvirtual desktop upon launch. Through a configuration option, the usermay specify any virtual desktop as the default starting desktop whenlaunching the virtual desktop manager application of the presentinvention. This differs from the prior art mechanism that forces thefirst desktop to always be the startup desktop.

A Method for Moving Windows Between Virtual Desktops

Virtual desktop systems of the prior art either allows no mechanism formoving windows between virtual desktops, or allows movement of windowsthrough the graphical interface. The present invention implements newmethod for moving a window or a collection of all of a particularapplication's windows to another virtual desktop by clicking and holdthe mouse button down on the title bar of a window and then changingvirtual desktops via a hot key. Whenever a desktop change takes placewith a hot key, the present invention determines if the mouse is down onthe title bar of a window, and if so, it will then move the window tothe new virtual desktop.

A Method to Override Virtual Desktop Behaviors

Behaviors in virtual desktop software are typically only changeablethrough a graphical configuration interface. To allow the user totemporarily suspend some virtual desktop behavior, the present inventionimplements an override hot key mechanism. This hotkey overrides the“focus follows mouse” feature, to allow changing desktops withoutchanging the current application (normally the last active applicationon a desktop is made active when you switch to the new desktop), andoverrides application desktop settings so that a new window shows up onthe current desktop (applications can have their windows forced to aspecific desktop, the override hot key temporarily disables thisbehavior).

A Method for Placing Child Windows on the Same Desktop as the ParentWindow

Prior art virtual desktop implementations place new application windowseither on the Current virtual desktop, or move them to another desktopbased on a rule for that application. The present invention implements amethod to detect child windows (windows such as alert panels, drawers,or sheets) and to place them onto the desktop of their parent window.

Notification of Desktop Changes

Some applications wish to be aware of virtual desktop behavior, and tofacilitate this the present invention implements method for notifyingapplications whenever a new virtual desktop is selected.

Tracking Topmost Application on Other Desktops

In order to provide users with a more logical experience with virtualdesktop software, the system of the present invention has the capabilityto track the last active application on each virtual desktop. Normally,virtual desktops will return the user to the topmost window on a virtualdesktop. However, on Macintosh systems (and likely others) it ispossible to have an application be active but not have any open windows.The present invention implements a method to track the last activeapplication on a virtual desktop and make that application active againupon returning to that desktop, even if it does not have any windowspresent on that desktop.

Sticky Monitors

The present invention allows the user to determine whether all monitorsbesides the main monitor in systems having more than one real screen are“sticky”. If the other monitors are sticky, then these monitors will nolonger be managed by the virtual desktop system of the presentinvention, and any window placed on them will always be seen. This mayalso be used to allow the user to select individual monitors to besticky, rather than just selecting all monitors besides the main one. Aconfiguration option is available in the GUI to allow the user to selectwhether they would like this behavior.

Remote Control

The present invention provides a mechanism for controlling all of thevirtual desktop behavior through programmatic mechanisms (applicationprogram interfaces or APIs) in addition to the already existing manualcontrolling mechanisms a user can access via the graphical interfaces.These programmatic mechanisms include obtaining the current virtualdesktop, changing virtual desktops, obtaining lists of windows for eachvirtual desktop, and moving windows between virtual desktops. In thisway, applications software may plan for, and implement workflowenvironments that use virtual desktops directly.

In particular, the API may be used to manage the visibility of objecticons on the virtual desktops. For instance, one or more sets of iconsmay be defined, and may be moved under control of the API or anotherapplication program to a particular virtual desktop, or may be madevisible or invisible depending on the frontmost window, active(foreground) application, or another criterion. Similarly, when movingan application's windows to another virtual desktop, icons associatedwith that application may be assigned to an ad hoc icon set and moved tothe target virtual desktop along with the application's windows.Alternatively, projects may be defined using commonly employedmechanisms such as operating system level file labels or the like, andall icons associated with a particular project or label may be moved toa target virtual desktop via an API call.

While the invention has been described in its preferred embodiments, itis to be understood that the words which have been used are words ofdescription rather than of limitation and that changes may be madewithin the purview of the appended claims without departing from thetrue scope and spirit of the invention in its broader aspects. Rather,various modifications may be made in the details within the scope andrange of equivalents of the claims and without departing from the spiritof the invention. The inventors further require that the scope accordedtheir claims be in accordance with the broadest possible constructionavailable under the law as it exists on the date of filing hereof (andof the application from which this application obtains priority) andthat no narrowing of the scope of the appended claims be allowed due tosubsequent changes in the law, as such a narrowing would constitute anex post facto adjudication, and a taking without due process or justcompensation.

The Provisional Application referred to herein, including the CD whichaccompanied it, is incorporated herein by reference;

1. A computer implemented system for presenting multiple virtualdesktops on a display of a computer system for previewing by a userwhich comprises: a pager window having multiple subplanes, saidsubplanes having a scaled virtual desktop having dimensions proportionalbut less than the dimensions of a corresponding virtual desktop; andmeans for automatically causing said windows to become transparent to auser-defined degree at a user-defined rate.